Solid state drives (SSDs) are a type of storage device that share a similar physical footprint with (and provide similar functionality as) traditional magnetic-based hard disk drives (HDDs). Notably, standard SSDs—which utilize “flash” non-volatile memory—can provide various advantages over standard HDDs, such as considerably faster Input/Output (I/O) performance. For example, average I/O latency speeds provided by SSDs typically outperform those of HDDs because the I/O latency speeds of SSDs are less-affected when data is fragmented across the memory blocks of SSDs. This occurs because HDDs include a read head component that must be relocated each time data is read/written, which produces a latency bottleneck as the average contiguity of written data is reduced over time. Moreover, when fragmentation occurs within HDDs, it becomes necessary to perform resource-expensive defragmentation operations to improve or restore performance. In contrast, SSDs, which are not bridled by read head components, can preserve I/O performance even as data fragmentation levels increase. SSDs also provide the benefit of increased impact tolerance (as there are no moving parts), and, in general, virtually limitless form factor potential. These advantages—combined with the increased availability of SSDs at consumer-affordable prices—make SSDs a preferable choice for mobile devices such as laptops, tablets, and smart phones.
Despite the foregoing benefits provided by SSDs, some drawbacks remain that have yet to be addressed, including a phenomenon commonly known as “SSD wear” that affects the overall lifespan of SSDs. In particular, and as is well-known, the memory blocks of the SSDs can only have data written into them a threshold number of times before their overall reliability begins to degrade. Unfortunately, the nature in which SSDs operate—as well as the manner in which they are being utilized—is contributing to ever-increasing average numbers of write requests that are issued to SSDs, thereby compromising their expected lifespans. For example, the average number of applications installed on computing devices is increasing over time, which directly contributes to increased numbers of write requests that are issued to the SSD of the computing device. Moreover, such write requests are typically multiplied in volume as a result of write amplification that occurs due to fact that SSDs require all pages within a given block to be completely erased before new data is written into one or more of the pages. In particular, when the existing data within a pending-erase page needs to be retained within the SSD, additional write commands are required to migrate the existing data to a new storage area within the SSD, thereby exacerbating these issues.
Accordingly, what is needed is an approach for preserving an expected lifespan of a non-volatile memory that is communicably coupled with a computing device.